#ifndef PROCESSOR_H_
#define PROCESSOR_H_
#include "MultiMath.h"
#include "DataFile.h"

class CProcessor
{
private:
	CMatrix m_RotationMatrix;

	// states
	float m_Roll;
	float m_Pitch;
	float m_Yaw;
	float m_RollRate;
	float m_PitchRate;
	float m_YawRate;

private:
	float DegToRadian(float deg);

public:
	CProcessor(void);
	~CProcessor(void);

	// data
	void GetRollPitchYaw(float& roll, float& pitch, float& yaw);
	void GetRollPitchYawRates(float& rollRate, float& pitchRate, float& yawRate);
	CMatrix GetRotationMatrix(void);

	void Reset(void);
	void AddNewMeasurement(SDataFile* df, float timeStep);
	
	enum Mode { GYROS, ACC, ACCFILTERED, COMBO } m_Mode;
};

#endif /*PROCESSOR_H_*/
